Find in the following lines the code corresponding to Supplementary material 3B: Lines_to_Analyse from the article “Metacommunity resilience against simulated gradients of wildfire: disturbance intensity and species dispersal ability determine landscape recover capacity”. The original scripts with the used functions can be found in
Article DOI:
Direct link: https://github.com/Cunillera-Montcusi/CunilleraMontcusi_LotteryModel.git
library(vegan)
library(igraph)
library(sna)
library(dummies)
# Load functions to run the all the simulations - Supplementary 3A: https://github.com/Cunillera-Montcusi/CunilleraMontcusi_LotteryModel.git
source("Sup S3a- CunilleraMontcusi_et_al_Functions_for_LotteryModel_and_Recolonization_mixed_dispersal.R")
Creation of a metacommunity matrix having 542 communities with 20 species having 200 individuals each. 542 corresponds to the number of water bodies of the studied network. We also create other matrices required by our functions: out.t.
No<-rep(20,200)
metacom<-matrix(rep(No),length(No),542)
# Output matrix for tracking simulation convergence
out.t<-matrix(c(1,0,0),1,3)
Uploading the xy dataset and creation of the different networks that correspond to the 9 dispersal abilities considered in the current study.
detach("package:sna", unload = TRUE) #detach "sna" package to avoid conflicts
#Only use igraph package
# Chargin UTM coordinates of water bodies network
xy.albera <- read.csv2(file = "xy.albera.csv", row.names = 1)
as.matrix(dist(xy.albera[,1:2]))->D_ALBERA
m250 <- ifelse(D_ALBERA>250,0,1)
m500 <- ifelse(D_ALBERA>500,0,1)
m1000 <- ifelse(D_ALBERA>1000,0,1)
m1500 <- ifelse(D_ALBERA>1500,0,1)
m2000 <- ifelse(D_ALBERA>2000,0,1)
m2500 <- ifelse(D_ALBERA>2500,0,1)
m3000 <- ifelse(D_ALBERA>3000,0,1)
mpercol <- ifelse(D_ALBERA>3849.61,0,1)
m5000 <- ifelse(D_ALBERA>5000,0,1)
# Joint all created graphs into a list
all_graphs <- list(LG_albera250, LG_albera500, LG_albera1000, LG_albera1500, LG_albera2000,
LG_albera2500, LG_albera3000, LG_alberapercol, LG_albera5000)
length(all_graphs) # Check number of items
We generate the community spliting in 5 levels of “alfa” value (0.1,0.3,0.5,0.7,0.9). First, we create the vector with the corresponding alfas ( all_alphas ). After this we run the function split.metacomm.alpha (Supplementary material S3A - https://github.com/Cunillera-Montcusi/CunilleraMontcusi_LotteryModel.git).
We split matrix in two submatrices. Each “dispersal group” have a fraction (alpha) of individuals realted to a resource shared with other trophic groups. All individuals in the “shared pool” follow a neutral dynamic in which individuals of any species can be replaced by individuals of any other. In addition, the other fraction of individulas are related to resources exclusevely exploted by each dispersal group (1-alpha)
# list of alphas per each dispersal ability group
all_alphas0.1 <- rep(0.1, times=length(all_graphs))
mm0.1<- split.metacomm.alpha(grafos = all_graphs ,metacom = metacom, alphas = all_alphas0.1) # Use the alphas that represent the set of scenarios to be considered
# list of alphas per each dispersal ability group
all_alphas0.3 <- rep(0.3, times=length(all_graphs))
mm0.3<- split.metacomm.alpha(grafos = all_graphs ,metacom = metacom, alphas = all_alphas0.3) # Use the alphas that represent the set of scenarios to be considered
# list of alphas per each dispersal ability group
all_alphas0.5 <- rep(0.5, times=length(all_graphs))
mm0.5<- split.metacomm.alpha(grafos = all_graphs ,metacom = metacom, alphas = all_alphas0.5) # Use the alphas that represent the set of scenarios to be considered
# list of alphas per each dispersal ability group
all_alphas0.7 <- rep(0.7, times=length(all_graphs))
mm0.7<- split.metacomm.alpha(grafos = all_graphs ,metacom = metacom, alphas = all_alphas0.7) # Use the alphas that represent the set of scenarios to be considered
# list of alphas per each dispersal ability group
all_alphas0.9 <- rep(0.9, times=length(all_graphs))
mm0.9<- split.metacomm.alpha(grafos = all_graphs ,metacom = metacom, alphas = all_alphas0.9) # Use the alphas that represent the set of scenarios to be considered
Generation of the metacommunities for each alpha value using the function meta.comm_neutral_asimetrica (Supplementary material S3A - https://github.com/Cunillera-Montcusi/CunilleraMontcusi_LotteryModel.git). First we generate the “entrada” list which will have all the needed entering items for the function. Second we run the function for 400 iterations and repeat it 25 times (=10,000 iterations). This is done to keep save the process every 400 iterations.
entrada0.1<-list("control.S"=out.t,"Spp.groups.dummy"=0, metacom.s=mm0.1[[1]], metacom.e=mm0.1[[2]], metacom=metacom)
for (i in 1:25) {
meta.comm_neutral_asimetrica( grafos= all_graphs , # list with all graphs
it= 400 , # number of iterations
metacom.e= entrada0.1[[4]], # metacom exlusive
metacom.s= entrada0.1[[3]], # metacom shared
m.in= 0.01, # migraton in
m.out= 0.01, # migration out
n= 50, # number of individuals removed
out.t= entrada0.1[[1]] , # out where richness is saved - CONTROL
cada= 50 , # every time data will be saved
alphas= all_alphas0.1)-> entrada0.1 # a vector with all alpha values (one by each graphs)
save.image("output/entrada01.RData") # For each for we save the environment
entrada0.3<-list("control.S"=out.t,"Spp.groups.dummy"=0, metacom.s=mm0.3[[1]], metacom.e=mm0.3[[2]], metacom=metacom)
for (i in 1:25) {
meta.comm_neutral_asimetrica( grafos= all_graphs , # list with all graphs
it= 400 , # number of iterations
metacom.e= entrada0.3[[4]], # metacom exlusive
metacom.s= entrada0.3[[3]], # metacom shared
m.in= 0.01, # migraton in
m.out= 0.01, # migration out
n= 50, # number of individuals removed
out.t= entrada0.3[[1]] , # out where richness is saved - CONTROL
cada= 50 , # every time data will be saved
alphas= all_alphas0.3)-> entrada0.3 # a vector with all alpha values (one by each graphs)
save.image("output/entrada03.RData") # For each for we save the environment
}
entrada0.5<-list("control.S"=out.t,"Spp.groups.dummy"=0, metacom.s=mm0.5[[1]], metacom.e=mm0.5[[2]], metacom=metacom)
for (i in 1:25) {
meta.comm_neutral_asimetrica( grafos= all_graphs , # list with all graphs
it= 400 , # number of iterations
metacom.e= entrada0.5[[4]], # metacom exlusive
metacom.s= entrada0.5[[3]], # metacom shared
m.in= 0.01, # migraton in
m.out= 0.01, # migration out
n= 50, # number of individuals removed
out.t= entrada0.5[[1]] , # out where richness is saved - CONTROL
cada= 50 , # every time data will be saved
alphas= all_alphas0.5)-> entrada0.5 # a vector with all alpha values (one by each graphs)
save.image("output/entrada05.RData") # For each for we save the environment
}
entrada0.7<-list("control.S"=out.t,"Spp.groups.dummy"=0, metacom.s=mm0.7[[1]], metacom.e=mm0.7[[2]], metacom=metacom)
for (i in 1:25) {
meta.comm_neutral_asimetrica( grafos= all_graphs , # list with all graphs
it= 400 , # number of iterations
metacom.e= entrada0.7[[4]], # metacom exlusive
metacom.s= entrada0.7[[3]], # metacom shared
m.in= 0.01, # migraton in
m.out= 0.01, # migration out
n= 50, # number of individuals removed
out.t= entrada0.7[[1]] , # out where richness is saved - CONTROL
cada= 50 , # every time data will be saved
alphas= all_alphas0.7)-> entrada0.7 # a vector with all alpha values (one by each graphs)
save.image("output/entrada07.RData") # For each for we save the environment
}
entrada0.9<-list("control.S"=out.t,"Spp.groups.dummy"=0, metacom.s=mm0.9[[1]], metacom.e=mm0.9[[2]], metacom=metacom)
for (i in 1:25) {
meta.comm_neutral_asimetrica( grafos= all_graphs , # list with all graphs
it= 400 , # number of iterations
metacom.e= entrada0.9[[4]], # metacom exlusive
metacom.s= entrada0.9[[3]], # metacom shared
m.in= 0.01, # migraton in
m.out= 0.01, # migration out
n= 50, # number of individuals removed
out.t= entrada0.9[[1]] , # out where richness is saved - CONTROL
cada= 50 , # every time data will be saved
alphas= all_alphas0.9)-> entrada0.9 # a vector with all alpha values (one by each graphs)
save.image("output/entrada09.RData") # For each for we save the environment
}
Simulation of the 400 wildfire scenarios of varying intensity and area using the function rangos (Supplementary material S3A - https://github.com/Cunillera-Montcusi/CunilleraMontcusi_LotteryModel.git). With this simulation we create the fake.wildfires table, that will be used in the following steps.
We also load the nodes that were affected by the wildfire in 2012 Original_Fire.RData for using them in the simulations corresponding to that wildfire.
# Fake fires - 400
fake.wildfires<-rangos(XY = xy.albera, fire0 = 467, niveles = 20, efectividad = 20)
colnames(fake.wildfires) # Check all values
# Real 2012 wildfire
load("Original_Fire.RData")
Original_FIRE
We use the function burning_recolonization_function.2 (Supplementary material S3A - https://github.com/Cunillera-Montcusi/CunilleraMontcusi_LotteryModel.git). First, this function burns (community=0) the selected communities according to the Original_Fire.RData or the fake.wildfires. Second, simulates the coalescent recolonization process after 1 iteration (T1) or after 100 (T100). Each process is done for each alpha value.
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.1.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Orig_rec_ENTRADA_0.1 <- burning_recolonization_function.2(M =Original_FIRE,
metacom = entrada0.1[[5]],
metacom.s = entrada0.1[[3]],
metacom.e = entrada0.1[[4]],
migra =0.01, grafos = all_graphs, it = 1,
alphas = rep(0.1, times=length(all_graphs)),
dummy.pool =entrada0.1[[2]],lista.n.grupos = lista.n)
save.image("output/Orig_rec_ENTRADA_0.1_100.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.1.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Orig_rec_ENTRADA_0.1_100 <- burning_recolonization_function.2(M =Original_FIRE,
metacom = entrada0.1[[5]],
metacom.s = entrada0.1[[3]],
metacom.e = entrada0.1[[4]],
migra =0.01, grafos = all_graphs, it = 100,
alphas = rep(0.1, times=length(all_graphs)),
dummy.pool =entrada0.1[[2]],lista.n.grupos = lista.n)
save.image("output/Orig_rec_ENTRADA_0.1_100.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.3.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Orig_rec_ENTRADA_0.3 <- burning_recolonization_function.2(M =Original_FIRE,
metacom = entrada0.3[[5]],
metacom.s = entrada0.3[[3]],
metacom.e = entrada0.3[[4]],
migra =0.01, grafos = all_graphs, it = 1,
alphas = rep(0.3, times=length(all_graphs)),
dummy.pool =entrada0.3[[2]],lista.n.grupos = lista.n)
save.image("output/Orig_rec_ENTRADA_0.3.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.3.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Orig_rec_ENTRADA_0.3_100 <- burning_recolonization_function.2(M =Original_FIRE,
metacom = entrada0.3[[5]],
metacom.s = entrada0.3[[3]],
metacom.e = entrada0.3[[4]],
migra =0.01, grafos = all_graphs, it = 100,
alphas = rep(0.3, times=length(all_graphs)),
dummy.pool =entrada0.3[[2]],lista.n.grupos = lista.n)
save.image("output/Orig_rec_ENTRADA_0.3_100.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.5.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Orig_rec_ENTRADA_0.5 <- burning_recolonization_function.2(M =Original_FIRE,
metacom = entrada0.5[[5]],
metacom.s = entrada0.5[[3]],
metacom.e = entrada0.5[[4]],
migra =0.01, grafos = all_graphs, it = 1,
alphas = rep(0.5, times=length(all_graphs)),
dummy.pool =entrada0.5[[2]],lista.n.grupos = lista.n)
save.image("output/Orig_rec_ENTRADA_0.5.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.5.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Orig_rec_ENTRADA_0.5_100 <- burning_recolonization_function.2(M =Original_FIRE,
metacom = entrada0.5[[5]],
metacom.s = entrada0.5[[3]],
metacom.e = entrada0.5[[4]],
migra =0.01, grafos = all_graphs, it = 100,
alphas = rep(0.5, times=length(all_graphs)),
dummy.pool =entrada0.5[[2]],lista.n.grupos = lista.n)
save.image("output/Orig_rec_ENTRADA_0.5_100.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.7.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Orig_rec_ENTRADA_0.7 <- burning_recolonization_function.2(M =Original_FIRE,
metacom = entrada0.7[[5]],
metacom.s = entrada0.7[[3]],
metacom.e = entrada0.7[[4]],
migra =0.01, grafos = all_graphs, it = 1,
alphas = rep(0.7, times=length(all_graphs)),
dummy.pool =entrada0.7[[2]],lista.n.grupos = lista.n)
save.image("output/Orig_rec_ENTRADA_0.7.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.7.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Orig_rec_ENTRADA_0.7_100 <- burning_recolonization_function.2(M =Original_FIRE,
metacom = entrada0.7[[5]],
metacom.s = entrada0.7[[3]],
metacom.e = entrada0.7[[4]],
migra =0.01, grafos = all_graphs, it = 100,
alphas = rep(0.7, times=length(all_graphs)),
dummy.pool =entrada0.7[[2]],lista.n.grupos = lista.n)
save.image("output/Orig_rec_ENTRADA_0.7_100.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.9.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Orig_rec_ENTRADA_0.9 <- burning_recolonization_function.2(M =Original_FIRE,
metacom = entrada0.9[[5]],
metacom.s = entrada0.9[[3]],
metacom.e = entrada0.9[[4]],
migra =0.01, grafos = all_graphs, it = 1,
alphas = rep(0.9, times=length(all_graphs)),
dummy.pool =entrada0.9[[2]],lista.n.grupos = lista.n)
save.image("output/Orig_rec_ENTRADA_0.9.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.9.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Orig_rec_ENTRADA_0.9_100 <- burning_recolonization_function.2(M =Original_FIRE,
metacom = entrada0.9[[5]],
metacom.s = entrada0.9[[3]],
metacom.e = entrada0.9[[4]],
migra =0.01, grafos = all_graphs, it = 100,
alphas = rep(0.9, times=length(all_graphs)),
dummy.pool =entrada0.9[[2]],lista.n.grupos = lista.n)
save.image("output/Orig_rec_ENTRADA_0.9_100.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.1.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Burn_rec_ENTRADA_0.1 <- burning_recolonization_function.2(M =fake.wildfires,
metacom = entrada0.1[[5]],
metacom.s = entrada0.1[[3]],
metacom.e = entrada0.1[[4]],
migra =0.01, grafos = all_graphs, it = 1,
alphas = rep(0.1, times=length(all_graphs)),
dummy.pool =entrada0.1[[2]],lista.n.grupos = lista.n)
save.image("output/Burn_rec_ENTRADA_0.1.Rdata")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.1.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Burn_rec_ENTRADA_0.1_100 <- burning_recolonization_function.2(M =fake.wildfires,
metacom = entrada0.1[[5]],
metacom.s = entrada0.1[[3]],
metacom.e = entrada0.1[[4]],
migra =0.01, grafos = all_graphs, it = 100,
alphas = rep(0.1, times=length(all_graphs)),
dummy.pool =entrada0.1[[2]],lista.n.grupos = lista.n)
save.image("output/Burn_rec_ENTRADA_0.1_100.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.3.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Burn_rec_ENTRADA_0.3 <- burning_recolonization_function.2(M =fake.wildfires,
metacom = entrada0.3[[5]],
metacom.s = entrada0.3[[3]],
metacom.e = entrada0.3[[4]],
migra =0.01, grafos = all_graphs, it = 1,
alphas = rep(0.3, times=length(all_graphs)),
dummy.pool =entrada0.3[[2]],lista.n.grupos = lista.n)
save.image("output/Burn_rec_ENTRADA_0.3.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.3.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Burn_rec_ENTRADA_0.3_100 <- burning_recolonization_function.2(M =fake.wildfires,
metacom = entrada0.3[[5]],
metacom.s = entrada0.3[[3]],
metacom.e = entrada0.3[[4]],
migra =0.01, grafos = all_graphs, it = 100,
alphas = rep(0.3, times=length(all_graphs)),
dummy.pool =entrada0.3[[2]],lista.n.grupos = lista.n)
save.image("output/Burn_rec_ENTRADA_0.3_100_05.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.5.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Burn_rec_ENTRADA_0.5 <- burning_recolonization_function.2(M =fake.wildfires,
metacom = entrada0.5[[5]],
metacom.s = entrada0.5[[3]],
metacom.e = entrada0.5[[4]],
migra =0.01, grafos = all_graphs, it = 1,
alphas = rep(0.5, times=length(all_graphs)),
dummy.pool =entrada0.5[[2]],lista.n.grupos = lista.n)
save.image("output/Burn_rec_ENTRADA_0.5.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.5.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Burn_rec_ENTRADA_0.5_100 <- burning_recolonization_function.2(M =fake.wildfires,
metacom = entrada0.5[[5]],
metacom.s = entrada0.5[[3]],
metacom.e = entrada0.5[[4]],
migra =0.01, grafos = all_graphs, it = 100,
alphas = rep(0.5, times=length(all_graphs)),
dummy.pool =entrada0.5[[2]],lista.n.grupos = lista.n)
save.image("output/Burn_rec_ENTRADA_0.5_100.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.7.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Burn_rec_ENTRADA_0.7 <- burning_recolonization_function.2(M =fake.wildfires,
metacom = entrada0.7[[5]],
metacom.s = entrada0.7[[3]],
metacom.e = entrada0.7[[4]],
migra =0.01, grafos = all_graphs, it = 1,
alphas = rep(0.7, times=length(all_graphs)),
dummy.pool =entrada0.7[[2]],lista.n.grupos = lista.n)
save.image("output/Burn_rec_ENTRADA_0.7.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.7.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Burn_rec_ENTRADA_0.7_100 <- burning_recolonization_function.2(M =fake.wildfires[,c(1:3,4)],
metacom = entrada0.7[[5]],
metacom.s = entrada0.7[[3]],
metacom.e = entrada0.7[[4]],
migra =0.01, grafos = all_graphs, it = 100,
alphas = rep(0.7, times=length(all_graphs)),
dummy.pool =entrada0.7[[2]],lista.n.grupos = lista.n)
save.image("output/Burn_rec_ENTRADA_0.7_100.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.9.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Burn_rec_ENTRADA_0.9 <- burning_recolonization_function.2(M =fake.wildfires,
metacom = entrada0.9[[5]],
metacom.s = entrada0.9[[3]],
metacom.e = entrada0.9[[4]],
migra =0.01, grafos = all_graphs, it = 1,
alphas = rep(0.9, times=length(all_graphs)),
dummy.pool =entrada0.9[[2]],lista.n.grupos = lista.n)
save.image("output/Burn_rec_ENTRADA_0.9.RData")
# Load the simulated metacommunities generated in the step 2B (see above)
load("Pre-Burned_Communities/entrada0.9.RData")
# Generate an output list with 9 "items"
lista.n <- list("primer","segon","tercer","quaert","cinque","sise","sete","buite","nove")
Burn_rec_ENTRADA_0.9_100 <- burning_recolonization_function.2(M =fake.wildfires,
metacom = entrada0.9[[5]],
metacom.s = entrada0.9[[3]],
metacom.e = entrada0.9[[4]],
migra =0.01, grafos = all_graphs, it = 100,
alphas = rep(0.9, times=length(all_graphs)),
dummy.pool =entrada0.9[[2]],lista.n.grupos = lista.n)
save.image("output/Burn_rec_ENTRADA_0.9_100.RData")
Once we finish all the simulations for the Real 2012 wildfire and the Simulated Fake Fires scenarios and each of the 5 alphas we created the plots. Plots shown in the Article correspond only to alpha=0.5 values. All the other plots can be found here or in the supplementary material.
load("Post-Burned_RecolinzedCommunities/Burn/Original/Orig_rec_ENTRADA_0.1_100.RData")
load("Post-Burned_RecolinzedCommunities/Burn/Original/Orig_rec_ENTRADA_0.3_100.RData")
load("Post-Burned_RecolinzedCommunities/Burn/Original/Orig_rec_ENTRADA_0.5_100.RData")
load("Post-Burned_RecolinzedCommunities/Burn/Original/Orig_rec_ENTRADA_0.7_100.RData")
load("Post-Burned_RecolinzedCommunities/Burn/Original/Orig_rec_ENTRADA_0.9_100.RData")
# Cunillera_palette - Available at https://github.com/Cunillera-Montcusi/Cunillera_Pallete
source("CUNILLERA_palette.R")
colorts<- CUNILLERA_pal("grey")(9)
We calculate Return Rate (RR) and Diversity Recover (DR) for each one of the alphas and for the real 2012 wildfire scenario. First, we create the plot functions for generating the plots: ## Function to generate plots
# Plot for RR values
plot_RR_iter <- function(Orig_rec_100, titol){
Dispersal_abilities <- c(250,500,1000,1500,2000,2500,3000,3842,5000)
#par(mfrow=c(2,1))
# Iterations_______________________________________________________________
iter_disponibles <- NULL
for (e in 1:9) {
iter_disponibles[e] <-Orig_rec_100$Iteraciones_para_fill[[e]][,14]
}
iter_disponibles <- (100/iter_disponibles)/100
barCenters <- barplot(iter_disponibles,1,
ylim = c(0,1) , col=colorts,border = "black",main = títol,cex.names=1.2,
ylab = "RR", xlab= "Dispersal abilities",cex.axis=1.5,cex=2)
box(which = "plot", lty = "solid")
text(barCenters,par("usr")[3]-0.015, srt = 60, adj= 1, xpd = TRUE, labels =Dispersal_abilities , cex=1.4)
sd_iter_disponibles <- NULL
for (e in 1:9) {
sd_iter_disponibles[e] <-Orig_rec_100$sd.iteraciones.fill[[e]][,14]
}
sd_iter_disponibles <- (100/sd_iter_disponibles)/100
arrows(x0 =barCenters, x1 =barCenters,
y0 =iter_disponibles, y1=ifelse(iter_disponibles+sd_iter_disponibles>100,95,iter_disponibles+sd_iter_disponibles),
angle = 90, length = 0.1)
#abline(0,0, col="black")
}
# Plot for DC values
plot_Orig_DC <- function(Orig_rec_100, Pre_fire_Orig, titol){
Dispersal_abilities <- c(250,500,1000,1500,2000,2500,3000,3842,5000)
# Original_______________________________________________________________
spp_disponibles <- NULL
pre_spp <- NULL
for (e in 1:9) {
spp_disponibles[e] <-Orig_rec$Prop.spp.disponibles[[e]][,14]
pre_spp[e] <- Pre_fire_Orig$Prop.spp.disponibles[[e]][,14]
#pre_spp[e] <- mean(apply(ifelse(as.matrix(Pre_fire_Orig[[5]][which(Pre_fire_Orig[[2]][,e]==1),Original_FIRE[,3]])>0,1,0),2,sum))
}
spp_disponibles <- (pre_spp*100)/spp_disponibles
spp_disponibles<- ifelse(spp_disponibles>100,100,spp_disponibles)
# PLot line
plot(Dispersal_abilities, spp_disponibles,
ylim = c(0,105), xlim = c(0,5000), type="l",col="darkblue", lwd=2, lty=3,cex=2,cex.axis=1.5,
ylab = "", xlab= "",main = "")
# Plot points
par(new=T)
plot(Dispersal_abilities, spp_disponibles,
ylim = c(0,105), xlim = c(0,5000), type="p", col="black",bg=colorts,
ylab = "DR", xlab= "Dispersal abilities",main = títol,
pch=21, cex=2,cex.axis=1.5)
#SD _____________________
sd_spp_disponibles <- NULL
sd_pre_spp <- NULL
for (e in 1:9) {
sd_spp_disponibles[e] <-Orig_rec$sd.spp.disponibles[[e]][,14]
#sd_pre_spp[e] <- sd(apply(ifelse(as.matrix(Pre_fire_Orig[[e]][which(Pre_fire_Orig[[2]][,1]==e),Original_FIRE[,3]])>0,1,0),2,sum))
sd_pre_spp[e] <- Pre_fire_Orig$sd.spp.disponibles[[e]][,14]
sd_spp_disponibles[e] <- mean(sd_spp_disponibles[e],sd_pre_spp[e])
}
arrows(x0 = Dispersal_abilities, x1 =Dispersal_abilities,
y0 =spp_disponibles, y1= ifelse(spp_disponibles-sd_spp_disponibles<0,0,spp_disponibles-sd_spp_disponibles),
code=2, angle = 90, length = 0.1, col="grey30")
arrows(x0 = Dispersal_abilities, x1 =Dispersal_abilities,
y0 =spp_disponibles, y1= spp_disponibles+sd_spp_disponibles,
code=2, angle = 90, length = 0.1, col="grey30")
}
png(filename = "original_fires_outputs.png",width = 18000,height =14000 ,units = "px",res = 1000)
#Alpha 0.1
par(mfrow=c(3,4),cex.main=2, las=1)
plot_RR_iter(Orig_rec_100 =Orig_rec_ENTRADA_0.1_100 , titol = "A-0.1")
plot_Orig_DC(Orig_rec_100 =Orig_rec_ENTRADA_0.1_100 , Pre_fire_Orig=Orig_rec_ENTRADA_0.1, titol = "B-0.1")
#Alpha 0.3
par(las=1)
plot_RR_iter(Orig_rec_100 =Orig_rec_ENTRADA_0.3_100 , titol = "A-0.3")
plot_Orig_DC(Orig_rec_100 =Orig_rec_ENTRADA_0.3_100 , Pre_fire_Orig=Orig_rec_ENTRADA_0.3, titol = "B-0.3")
#Alpha 0.5
par(las=1)
plot_RR_iter(Orig_rec_100 =Orig_rec_ENTRADA_0.5_100 , titol = "A-0.5")
plot_Orig_DC(Orig_rec_100 =Orig_rec_ENTRADA_0.5_100 , Pre_fire_Orig=Orig_rec_ENTRADA_0.5, titol = "B-0.5")
#Alpha 0.7
par(las=1)
plot_RR_iter(Orig_rec_100 =Orig_rec_ENTRADA_0.7_100 , titol = "A-0.7")
plot_Orig_DC(Orig_rec_100 =Orig_rec_ENTRADA_0.7_100 , Pre_fire_Orig=Orig_rec_ENTRADA_0.7, titol = "B-0.7")
#Alpha 0.9
par(las=1)
plot_RR_iter(Orig_rec_100 =Orig_rec_ENTRADA_0.9_100 , titol = "A-0.9")
plot_Orig_DC(Orig_rec_100 =Orig_rec_ENTRADA_0.9_100 , Pre_fire_Orig=Orig_rec_ENTRADA_0.9, titol = "B-0.9")
dev.off()
png(filename = "original_0.5_outputs.png",width = 15000,height = 7000,units = "px",res = 1000)
par(mfrow=c(1,2),cex.main=2, las=1, font=1, font.lab=2,cex.lab=1.2)
plot_RR_iter(Orig_rec_100 =Orig_rec_ENTRADA_0.5_100, titol = "")
plot_Orig_DC(Orig_rec_100 =Orig_rec_ENTRADA_0.5_100 , Pre_fire_Orig=Orig_rec_ENTRADA_0.5,titol="")
dev.off()
Simulated wildfires scenarios are ploted altogether in “3D” plots where the wildfire scenarios characteristics: y=intensitty and x=area and the response variable (RR, DR, Average richness T1, Average richness T100) are represented.
load("Post-Burned_RecolinzedCommunities/Burn/T1/Burn_rec_ENTRADA_0.1.RData")
load("Post-Burned_RecolinzedCommunities/Burn/T1/Burn_rec_ENTRADA_0.3.RData")
load("Post-Burned_RecolinzedCommunities/Burn/T1/Burn_rec_ENTRADA_0.5.RData")
load("Post-Burned_RecolinzedCommunities/Burn/T1/Burn_rec_ENTRADA_0.7.RData")
load("Post-Burned_RecolinzedCommunities/Burn/T1/Burn_rec_ENTRADA_0.9.RData")
load("C:/Users/Cunilleramontcusi/Desktop/Burn/T100/0.1/Burn_rec_ENTRADA_0.1_100_JOINT.RData")
load("C:/Users/Cunilleramontcusi/Desktop/Burn/T100/0.3/Burn_rec_ENTRADA_0.3_100_JOINT.RData")
load("C:/Users/Cunilleramontcusi/Desktop/Burn/T100/0.5/Burn_rec_ENTRADA_0.5_100_JOINT.RData")
load("C:/Users/Cunilleramontcusi/Desktop/Burn/T100/0.7/Burn_rec_ENTRADA_0.7_100_JOINT.RData")
load("C:/Users/Cunilleramontcusi/Desktop/Burn/T100/0.9/Burn_rec_ENTRADA_0.9_100_JOINT.RData")
# Data treatment to joint several parts of the data
buidatge_BURN_output <- function(Burn_05,Burn_10,Burn_15,Burn_20,Burn_25,
Burn_30,Burn_35,Burn_40,Burn_45,Burn_50,
Burn_55,Burn_60,Burn_65,Burn_70,Burn_75,
Burn_80,Burn_85,Burn_90,Burn_95,Burn_100){
Prop.spp.disponibles <- list("1","2","3","4","5","6","7","8","9")
for (a in 1:9) {
Prop.spp.disponibles[[a]] <- rbind(Burn_05[[1]][[a]],Burn_10[[1]][[a]],Burn_15[[1]][[a]],Burn_20[[1]][[a]],Burn_25[[1]][[a]],
Burn_30[[1]][[a]],Burn_35[[1]][[a]],Burn_40[[1]][[a]],Burn_45[[1]][[a]],Burn_50[[1]][[a]],
Burn_55[[1]][[a]],Burn_60[[1]][[a]],Burn_65[[1]][[a]],Burn_70[[1]][[a]],Burn_75[[1]][[a]],
Burn_80[[1]][[a]],Burn_85[[1]][[a]],Burn_90[[1]][[a]],Burn_95[[1]][[a]],Burn_100[[1]][[a]])
}
Iteraciones_para_fill<- list("1","2","3","4","5","6","7","8","9")
for (b in 1:9) {
Iteraciones_para_fill[[b]] <- rbind(Burn_05[[2]][[b]],Burn_10[[2]][[b]],Burn_15[[2]][[b]],Burn_20[[2]][[b]],Burn_25[[2]][[b]],
Burn_30[[2]][[b]],Burn_35[[2]][[b]],Burn_40[[2]][[b]],Burn_45[[2]][[b]],Burn_50[[2]][[b]],
Burn_55[[2]][[b]],Burn_60[[2]][[b]],Burn_65[[2]][[b]],Burn_70[[2]][[b]],Burn_75[[2]][[b]],
Burn_80[[2]][[b]],Burn_85[[2]][[b]],Burn_90[[2]][[b]],Burn_95[[2]][[b]],Burn_100[[2]][[b]])
}
sd.spp.disponibles<- list("1","2","3","4","5","6","7","8","9")
for (c in 1:9) {
sd.spp.disponibles[[c]] <- rbind(Burn_05[[3]][[c]],Burn_10[[3]][[c]],Burn_15[[3]][[c]],Burn_20[[3]][[c]],Burn_25[[3]][[c]],
Burn_30[[3]][[c]],Burn_35[[3]][[c]],Burn_40[[3]][[c]],Burn_45[[3]][[c]],Burn_50[[3]][[c]],
Burn_55[[3]][[c]],Burn_60[[3]][[c]],Burn_65[[3]][[c]],Burn_70[[3]][[c]],Burn_75[[3]][[c]],
Burn_80[[3]][[c]],Burn_85[[3]][[c]],Burn_90[[3]][[c]],Burn_95[[3]][[c]],Burn_100[[3]][[c]])
}
sd.iteraciones.fill<- list("1","2","3","4","5","6","7","8","9")
for (d in 1:9) {
sd.iteraciones.fill[[d]] <- rbind(Burn_05[[4]][[d]],Burn_10[[4]][[d]],Burn_15[[4]][[d]],Burn_20[[4]][[d]],Burn_25[[4]][[d]],
Burn_30[[4]][[d]],Burn_35[[4]][[d]],Burn_40[[4]][[d]],Burn_45[[4]][[d]],Burn_50[[4]][[d]],
Burn_55[[4]][[d]],Burn_60[[4]][[d]],Burn_65[[4]][[d]],Burn_70[[4]][[d]],Burn_75[[4]][[d]],
Burn_80[[4]][[d]],Burn_85[[4]][[d]],Burn_90[[4]][[d]],Burn_95[[4]][[d]],Burn_100[[4]][[d]])
}
out <- list(Prop.spp.disponibles,Iteraciones_para_fill,sd.spp.disponibles,sd.iteraciones.fill)
out
}
# generate an output 0.1 T100
Burn_0.1_T100 <- buidatge_BURN_output(Burn_rec_ENTRADA_0.1_100_05,Burn_rec_ENTRADA_0.1_100_10,Burn_rec_ENTRADA_0.1_100_15,
Burn_rec_ENTRADA_0.1_100_20,Burn_rec_ENTRADA_0.1_100_25,Burn_rec_ENTRADA_0.1_100_30,
Burn_rec_ENTRADA_0.1_100_35,Burn_rec_ENTRADA_0.1_100_40,Burn_rec_ENTRADA_0.1_100_45,
Burn_rec_ENTRADA_0.1_100_50,Burn_rec_ENTRADA_0.1_100_55,Burn_rec_ENTRADA_0.1_100_60,
Burn_rec_ENTRADA_0.1_100_65,Burn_rec_ENTRADA_0.1_100_70,Burn_rec_ENTRADA_0.1_100_75,
Burn_rec_ENTRADA_0.1_100_80,Burn_rec_ENTRADA_0.1_100_85,Burn_rec_ENTRADA_0.1_100_90,
Burn_rec_ENTRADA_0.1_100_95,Burn_rec_ENTRADA_0.1_100_1)
# generate an output 0.3 T100
Burn_0.3_T100 <- buidatge_BURN_output(Burn_rec_ENTRADA_0.3_100_05,Burn_rec_ENTRADA_0.3_100_10,Burn_rec_ENTRADA_0.3_100_15,
Burn_rec_ENTRADA_0.3_100_20,Burn_rec_ENTRADA_0.3_100_25,Burn_rec_ENTRADA_0.3_100_30,
Burn_rec_ENTRADA_0.3_100_35,Burn_rec_ENTRADA_0.3_100_40,Burn_rec_ENTRADA_0.3_100_45,
Burn_rec_ENTRADA_0.3_100_50,Burn_rec_ENTRADA_0.3_100_55,Burn_rec_ENTRADA_0.3_100_60,
Burn_rec_ENTRADA_0.3_100_65,Burn_rec_ENTRADA_0.3_100_70,Burn_rec_ENTRADA_0.3_100_75,
Burn_rec_ENTRADA_0.3_100_80,Burn_rec_ENTRADA_0.3_100_85,Burn_rec_ENTRADA_0.3_100_90,
Burn_rec_ENTRADA_0.3_100_95,Burn_rec_ENTRADA_0.3_100_1)
# generate an output 0.5 T100
Burn_0.5_T100 <- buidatge_BURN_output(Burn_rec_ENTRADA_0.5_100_05,Burn_rec_ENTRADA_0.5_100_10,Burn_rec_ENTRADA_0.5_100_15,
Burn_rec_ENTRADA_0.5_100_20,Burn_rec_ENTRADA_0.5_100_25,Burn_rec_ENTRADA_0.5_100_30,
Burn_rec_ENTRADA_0.5_100_35,Burn_rec_ENTRADA_0.5_100_40,Burn_rec_ENTRADA_0.5_100_45,
Burn_rec_ENTRADA_0.5_100_50,Burn_rec_ENTRADA_0.5_100_55,Burn_rec_ENTRADA_0.5_100_60,
Burn_rec_ENTRADA_0.5_100_65,Burn_rec_ENTRADA_0.5_100_70,Burn_rec_ENTRADA_0.5_100_75,
Burn_rec_ENTRADA_0.5_100_80,Burn_rec_ENTRADA_0.5_100_85,Burn_rec_ENTRADA_0.5_100_90,
Burn_rec_ENTRADA_0.5_100_95,Burn_rec_ENTRADA_0.5_100_1)
# generate an output 0.7 T100
Burn_0.7_T100 <- buidatge_BURN_output(Burn_rec_ENTRADA_0.7_100_05,Burn_rec_ENTRADA_0.7_100_10,Burn_rec_ENTRADA_0.7_100_15,
Burn_rec_ENTRADA_0.7_100_20,Burn_rec_ENTRADA_0.7_100_25,Burn_rec_ENTRADA_0.7_100_30,
Burn_rec_ENTRADA_0.7_100_35,Burn_rec_ENTRADA_0.7_100_40,Burn_rec_ENTRADA_0.7_100_45,
Burn_rec_ENTRADA_0.7_100_50,Burn_rec_ENTRADA_0.7_100_55,Burn_rec_ENTRADA_0.7_100_60,
Burn_rec_ENTRADA_0.7_100_65,Burn_rec_ENTRADA_0.7_100_70,Burn_rec_ENTRADA_0.7_100_75,
Burn_rec_ENTRADA_0.7_100_80,Burn_rec_ENTRADA_0.7_100_85,Burn_rec_ENTRADA_0.7_100_90,
Burn_rec_ENTRADA_0.7_100_95,Burn_rec_ENTRADA_0.7_100_1)
# generate an output 0.9 T100
Burn_0.9_T100 <- buidatge_BURN_output(Burn_rec_ENTRADA_0.9_100_05,Burn_rec_ENTRADA_0.9_100_10,Burn_rec_ENTRADA_0.9_100_15,
Burn_rec_ENTRADA_0.9_100_20,Burn_rec_ENTRADA_0.9_100_25,Burn_rec_ENTRADA_0.9_100_30,
Burn_rec_ENTRADA_0.9_100_35,Burn_rec_ENTRADA_0.9_100_40,Burn_rec_ENTRADA_0.9_100_45,
Burn_rec_ENTRADA_0.9_100_50,Burn_rec_ENTRADA_0.9_100_55,Burn_rec_ENTRADA_0.9_100_60,
Burn_rec_ENTRADA_0.9_100_65,Burn_rec_ENTRADA_0.9_100_70,Burn_rec_ENTRADA_0.9_100_75,
Burn_rec_ENTRADA_0.9_100_80,Burn_rec_ENTRADA_0.9_100_85,Burn_rec_ENTRADA_0.9_100_90,
Burn_rec_ENTRADA_0.9_100_95,Burn_rec_ENTRADA_0.9_100_1)
# Plots of the whole community (summ of all dispersal abilities) for each alpha
GLOBAL_ARTICLE_FOR_GGPLOT <- function(Post_Val_Matrix, title, subtitle){
# Packages needed
require(ggplot2)
require(devtools)
require(metR) # IF not installed: install_github("eliocamp/metR")
df <- as.data.frame((Post_Val_Matrix[[1]][[1]]+Post_Val_Matrix[[1]][[2]]+
Post_Val_Matrix[[1]][[3]]+Post_Val_Matrix[[1]][[4]]+
Post_Val_Matrix[[1]][[5]]+Post_Val_Matrix[[1]][[6]]+
Post_Val_Matrix[[1]][[7]]+Post_Val_Matrix[[1]][[8]]+
Post_Val_Matrix[[1]][[9]])) # Make the output a data.frame
out <- list() # Generate and out in list format
out.bo <- list() # Generate and out in list format
for(i in 1:length(df)){ # Loop for each column of the data.frame (that corresponds to Wild. Size)
out.temp <- df[1:20,i] # Select all rows in each column and make them a data.frame
out[[i]] <- out.temp # Put all the rows in data.frame format into the out list
}
for (e in 1:20) { # For every 20 times
ee<- data.frame(out[[e]],rep(e,times=20),seq(from=0.05, to=1, by=0.05)) # create a new data.frame with the Richness/area/intensity
colnames(ee) <- c("Richness","area","intensity") # Change column names
out.bo[[e]] <- ee
}
final <- do.call(rbind,out.bo) # Joints the several lists objects created in one big data.frame
if(min(final[,1])>90) # Condition that if the minimum richness is GREATER than 90 will follow the below path
plot <-ggplot(final,aes(x=area, y=intensity))+
# Raster with all the data, hjust and vjust hide the bakground and INTERPOLATE= T dissolve the rasters
geom_raster(aes(x = area,y=intensity,fill=Richness),hjust=1,vjust=1,interpolate = T)+
# Scale y axis and set the levels
scale_y_continuous(limits = c(0.05,1),expand = c(0,0.005),
breaks = seq(from=0.05, to=1, by=0.05),
labels =c("0","10","","20","","30","","40","","50",
"","60","","70","","80","","90","","100"))+
# Scale x axis and set the levels--> WARNING: The maximum distance is 21km!! IS A LIE!
scale_x_continuous(limits = c(1,20),expand = c(0,0.1),
breaks = seq(from=1, to=20, by=1),
labels =c("0","2","","4","","6","","8","","10",
"","12","","14","","16","","18","","20"))+
# Scalate thte colours, spectral means going from red to blue LIMITS force the range to be btween 0 & 100
scale_fill_distiller(palette = "Spectral",direction =1, limits = c(0,150))+
# Labs
labs(x="Size (km)",y="Intensity (%)",title = title,subtitle = subtitle)+
geom_point(aes(x=10.5, y=0.3), col="red", size=9, shape=21 , fill="black",stroke=2)+
# Theme stuff
theme_classic()+
theme(axis.line = element_line(size = 0.05, linetype = "solid"),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(0.4,1.5,0.4,1.5, "cm"),
axis.title = element_text(size = 18,face = "bold"),
axis.text = element_text(size = 18,face = "bold"),
axis.text.x = element_text(size = 30, color = "black"),
axis.text.y = element_text(size = 30, color = "black"),
legend.position = "none",
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_rect(colour = "black", size = 2.5, linetype = "solid"),
plot.background = element_rect(colour = "black", size = 1, linetype = "solid"),
legend.background = element_blank(),
plot.subtitle = element_text(size = 16,face = "bold", colour = "gray0"),
plot.title = element_text(size = 24, face = "bold"))
else plot <-ggplot(final,aes(x=area, y=intensity))+ # Condition that if the minimum richness is SMALLER than 90 will follow
# Raster with all the data, hjust and vjust hide the bakground and INTERPOLATE= T dissolve the rasters
geom_raster(aes(x = area,y=intensity,fill=Richness),hjust=1,vjust=1,interpolate = T)+
# Scale y axis and set the levels
scale_y_continuous(limits = c(0.05,1),expand = c(0,0.005),
breaks = seq(from=0.05, to=1, by=0.05),
labels =c("0","10","","20","","30","","40","","50",
"","60","","70","","80","","90","","100"))+
# Scale x axis and set the levels--> WARNING: The maximum distance is 21km!! IS A LIE!
scale_x_continuous(limits = c(1,20),expand = c(0,0.1),
breaks = seq(from=1, to=20, by=1),
labels =c("0","2","","4","","6","","8","","10",
"","12","","14","","16","","18","","20"))+
# Scalate thte colours, spectral means going from red to blue. LIMITS force the range to be btween 0 & 100
scale_fill_distiller(palette = "Spectral",direction =1, limits = c(0,150))+
# Labs
labs(x="Size (km)",y="Intensity (%)",title = title,subtitle = subtitle)+
# Sets the contour by Richness. BINWIDTH: the value between each contour line
geom_contour(aes(z=Richness), colour="black",size=0.5,lty="solid",stat="contour",
lineend="round",linejoin ="round",binwidth = 10)+
# Determines the labels with a white STROKE below them
geom_point(aes(x=10.5, y=0.3), col="red", size=9, shape=21 , fill="black",stroke=2)+
geom_text_contour(aes(z = Richness),stroke = 0.2, size=20, rotate = F,check_overlap=T)+
# Theme stuff
theme_classic()+
theme(axis.line = element_line(size = 0.05, linetype = "solid"),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(0.4,1.5,0.4,1.5, "cm"),
axis.title = element_text(size = 18,face = "bold"),
axis.text = element_text(size = 18,face = "bold"),
axis.text.x = element_text(size = 30, color = "black"),
axis.text.y = element_text(size = 30, color = "black"),
legend.position = "none",
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_rect(colour = "black", size = 2.5, linetype = "solid"),
plot.background = element_rect(colour = "black", size = 1, linetype = "solid"),
legend.background = element_blank(),
plot.subtitle = element_text(size = 16,face = "bold", colour = "gray0"),
plot.title = element_text(size = 24, face = "bold"))
plot
}
# Plot to combine all individual articles made with the function ARTICLE_FOR_GGPLOT
Combined_article_plot_RR <- function(Post_Val_Matrix, file_name, iterations ){
plot_Post_fire_1 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[2]][[1]],iterations,"250 m")
plot_Post_fire_2 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[2]][[2]],iterations,"500 m")
plot_Post_fire_3 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[2]][[3]],iterations,"1000 m")
plot_Post_fire_4 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[2]][[4]],iterations,"1500 m")
plot_Post_fire_5 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[2]][[5]],iterations,"2000 m")
plot_Post_fire_6 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[2]][[6]],iterations,"2500 m")
plot_Post_fire_7 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[2]][[7]],iterations,"3000 m")
plot_Post_fire_8 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[2]][[8]],iterations,"Percolation distance (3842 m)")
plot_Post_fire_9 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[2]][[9]],iterations,"5000 m")
####Els multiplots PER FUNCTIONAL TRAITS AFTER###
library(gtable)
library(grid)
library(gridExtra)
# Get the gtables
gA <- ggplotGrob(plot_Post_fire_1)
gB <- ggplotGrob(plot_Post_fire_2)
gC <- ggplotGrob(plot_Post_fire_3)
gD <- ggplotGrob(plot_Post_fire_4)
gE <- ggplotGrob(plot_Post_fire_5)
gF <- ggplotGrob(plot_Post_fire_6)
gG <- ggplotGrob(plot_Post_fire_7)
gH <- ggplotGrob(plot_Post_fire_8)
gI <- ggplotGrob(plot_Post_fire_9)
# Arrange the two charts
# The legend boxes are centered
grid.newpage()
png(filename = paste("C:/Users/Cunilleramontcusi/Desktop/",file_name,".png", sep=""),width=14000,height=12000,units="px",res=800)
grid.arrange(gA,gB,gC,gD,gE,gF,gG,gH,gI, ncol = 3, nrow=3)
dev.off()
}
# Individual plots for each alpha
ARTICLE_FOR_GGPLOT_RR <- function(Post_Val_Matrix, title, subtitle, max, is.7){
# Packages needed
require(ggplot2)
require(devtools)
require(metR) # IF not installed: install_github("eliocamp/metR")
df <- as.data.frame((Post_Val_Matrix)) # Make the output a data.frame
out <- list() # Generate and out in list format
out.bo <- list() # Generate and out in list format
for(i in 1:length(df)){ # Loop for each column of the data.frame (that corresponds to Wild. Size)
out.temp <- df[1:20,i] # Select all rows in each column and make them a data.frame
out[[i]] <- out.temp # Put all the rows in data.frame format into the out list
}
for (e in 1:20) { # For every 20 times
ee<- data.frame(out[[e]],rep(e,times=20),seq(from=0.05, to=1, by=0.05)) # create a new data.frame with the Richness/area/intensity
colnames(ee) <- c("Richness","area","intensity") # Change column names
out.bo[[e]] <- ee
}
final <- do.call(rbind,out.bo) # Joints the several lists objects created in one big data.frame
final[,1] <-(100/final[,1])/100
ggplot(final,aes(x=area, y=intensity))+ # Condition that if the minimum richness is SMALLER than 90 will follow
# Raster with all the data, hjust and vjust hide the bakground and INTERPOLATE= T dissolve the rasters
geom_raster(aes(x = area,y=intensity,fill=Richness),hjust=1,vjust=1,interpolate = T)+
# Scale y axis and set the levels
scale_y_continuous(limits = c(0.05,1),expand = c(0,0.005),
breaks = seq(from=0.05, to=1, by=0.05),
labels =c("0","10","","20","","30","","40","","50",
"","60","","70","","80","","90","","100"))+
# Scale x axis and set the levels--> WARNING: The maximum distance is 21km!! IS A LIE!
scale_x_continuous(limits = c(1,20),expand = c(0,0.1),
breaks = seq(from=1, to=20, by=1),
labels =c("0","2","","4","","6","","8","","10",
"","12","","14","","16","","18","","20"))+
# Scalate thte colours, spectral means going from red to blue. LIMITS force the range to be btween 0 & 100
scale_fill_distiller(palette = "Spectral",direction =1, limits = c(0,1))+
# Labs
labs(x="Size (km)",y="Intensity (%)",title = title,subtitle = subtitle)+
# Sets the contour by Richness. BINWIDTH: the value between each contour line
geom_contour(aes(z=Richness), colour="black",size=0.5, lty="solid",stat="contour",
lineend="round",linejoin ="round",binwidth = 0.4)+
geom_point(aes(x=10.5, y=0.3), col="red", size=9, shape=21 , fill="black",stroke=2)+
# Determines the labels with a white STROKE below them
geom_text_contour(aes(z = Richness),stroke = 0.2, size= 10, rotate = F,check_overlap=T)+
# Theme stuff
theme_classic()+
theme(axis.line = element_line(size = 0.05, linetype = "solid"),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(0.4,1.5,0.4,1.5, "cm"),
axis.title = element_text(size = 18,face = "bold"),
axis.text = element_text(size = 18,face = "bold"),
axis.text.x = element_text(size = 17, color = "black"),
axis.text.y = element_text(size = 17, color = "black"),
legend.position = "none",
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_rect(colour = "black", size = 2.5, linetype = "solid"),
plot.background = element_rect(colour = "black", size = 1, linetype = "solid"),
legend.background = element_blank(),
plot.subtitle = element_text(size = 18,face = "bold", colour = "gray0"),
plot.title = element_text(size = 18, face = "bold"))
}
# Plot to combine all individual articles made with the function ARTICLE_FOR_GGPLOT
Combined_article_plot_DR <- function(Post_Val_Matrix_T100, PreFire_Val_Matri, file_name, iterations ){
plot_Post_fire_1 <- ARTICLE_FOR_GGPLOT_Rich_Change_Rate(Post_Val_Matrix=Post_Val_Matrix_T100[[1]][[1]],
PreFire_Val_Matri=PreFire_Val_Matri[[1]][[1]],
title = iterations,subtitle = "250 m", max=22)
plot_Post_fire_2 <- ARTICLE_FOR_GGPLOT_Rich_Change_Rate(Post_Val_Matrix=Post_Val_Matrix_T100[[1]][[2]],
PreFire_Val_Matri=PreFire_Val_Matri[[1]][[2]],
iterations,"500 m", max=22)
plot_Post_fire_3 <- ARTICLE_FOR_GGPLOT_Rich_Change_Rate(Post_Val_Matrix=Post_Val_Matrix_T100[[1]][[3]],
PreFire_Val_Matri=PreFire_Val_Matri[[1]][[3]],
iterations,"1000 m", max=22)
plot_Post_fire_4 <- ARTICLE_FOR_GGPLOT_Rich_Change_Rate(Post_Val_Matrix=Post_Val_Matrix_T100[[1]][[4]],
PreFire_Val_Matri=PreFire_Val_Matri[[1]][[4]],
iterations,"1500 m", max=22)
plot_Post_fire_5 <- ARTICLE_FOR_GGPLOT_Rich_Change_Rate(Post_Val_Matrix=Post_Val_Matrix_T100[[1]][[5]],
PreFire_Val_Matri=PreFire_Val_Matri[[1]][[5]],
iterations,"2000 m", max=22)
plot_Post_fire_6 <- ARTICLE_FOR_GGPLOT_Rich_Change_Rate(Post_Val_Matrix=Post_Val_Matrix_T100[[1]][[6]],
PreFire_Val_Matri=PreFire_Val_Matri[[1]][[6]],
iterations,"2500 m", max=22)
plot_Post_fire_7 <- ARTICLE_FOR_GGPLOT_Rich_Change_Rate(Post_Val_Matrix=Post_Val_Matrix_T100[[1]][[7]],
PreFire_Val_Matri=PreFire_Val_Matri[[1]][[7]],
iterations,"3000 m", max=22)
plot_Post_fire_8 <- ARTICLE_FOR_GGPLOT_Rich_Change_Rate(Post_Val_Matrix=Post_Val_Matrix_T100[[1]][[8]],
PreFire_Val_Matri=PreFire_Val_Matri[[1]][[8]],
iterations,"Percolation distance (3842 m)", max=22)
plot_Post_fire_9 <- ARTICLE_FOR_GGPLOT_Rich_Change_Rate(Post_Val_Matrix=Post_Val_Matrix_T100[[1]][[9]],
PreFire_Val_Matri=PreFire_Val_Matri[[1]][[9]],
iterations,"5000 m", max=24)
####Els multiplots PER FUNCTIONAL TRAITS AFTER###
library(gtable)
library(grid)
library(gridExtra)
# Get the gtables
gA <- ggplotGrob(plot_Post_fire_1)
gB <- ggplotGrob(plot_Post_fire_2)
gC <- ggplotGrob(plot_Post_fire_3)
gD <- ggplotGrob(plot_Post_fire_4)
gE <- ggplotGrob(plot_Post_fire_5)
gF <- ggplotGrob(plot_Post_fire_6)
gG <- ggplotGrob(plot_Post_fire_7)
gH <- ggplotGrob(plot_Post_fire_8)
gI <- ggplotGrob(plot_Post_fire_9)
# Arrange the two charts
# The legend boxes are centered
grid.newpage()
png(filename = paste("C:/Users/Cunilleramontcusi/Desktop/",file_name,".png", sep=""),width=14000,height=12000,units="px",res=800)
grid.arrange(gA,gB,gC,gD,gE,gF,gG,gH,gI, ncol = 3, nrow=3)
dev.off()
}
# Individual plots for each alpha
ARTICLE_FOR_GGPLOT_DR <- function(Post_Val_Matrix_T100, PreFire_Val_Matri, title, subtitle, max){
# Packages needed
require(ggplot2)
require(devtools)
require(metR) # IF not installed: install_github("eliocamp/metR")
df <- as.data.frame((Post_Val_Matrix_T100)) # Make the output a data.frame
out <- list() # Generate and out in list format
out.bo <- list() # Generate and out in list format
for(i in 1:length(df)){ # Loop for each column of the data.frame (that corresponds to Wild. Size)
out.temp <- df[1:20,i] # Select all rows in each column and make them a data.frame
out[[i]] <- out.temp # Put all the rows in data.frame format into the out list
}
for (e in 1:20) { # For every 20 times
ee<- data.frame(out[[e]],rep(e,times=20),seq(from=0.05, to=1, by=0.05)) # create a new data.frame with the Richness/area/intensity
colnames(ee) <- c("Richness","area","intensity") # Change column names
out.bo[[e]] <- ee
}
final <- do.call(rbind,out.bo)
df <- as.data.frame((PreFire_Val_Matri)) # Make the output a data.frame
out <- list() # Generate and out in list format
out.bo <- list() # Generate and out in list format
for(i in 1:length(df)){ # Loop for each column of the data.frame (that corresponds to Wild. Size)
out.temp <- df[1:20,i] # Select all rows in each column and make them a data.frame
out[[i]] <- out.temp # Put all the rows in data.frame format into the out list
}
for (e in 1:20) { # For every 20 times
ee<- data.frame(out[[e]],rep(e,times=20),seq(from=0.05, to=1, by=0.05)) # create a new data.frame with the Richness/area/intensity
colnames(ee) <- c("Richness","area","intensity") # Change column names
out.bo[[e]] <- ee
}
PreFire_final <- do.call(rbind,out.bo)
final[,1] <- (PreFire_final[,1]*100)/final
final[,1] <- ifelse(final[,1]>100,100,final[,1])
ggplot(final,aes(x=area, y=intensity))+ # Condition that if the minimum richness is SMALLER than 90 will follow
# Raster with all the data, hjust and vjust hide the bakground and INTERPOLATE= T dissolve the rasters
geom_raster(aes(x = area,y=intensity,fill=Richness),hjust=1,vjust=1,interpolate = T)+
# Scale y axis and set the levels
scale_y_continuous(limits = c(0.05,1),expand = c(0,0.005),
breaks = seq(from=0.05, to=1, by=0.05),
labels =c("0","10","","20","","30","","40","","50",
"","60","","70","","80","","90","","100"))+
# Scale x axis and set the levels--> WARNING: The maximum distance is 21km!! IS A LIE!
scale_x_continuous(limits = c(1,20),expand = c(0,0.1),
breaks = seq(from=1, to=20, by=1),
labels =c("0","2","","4","","6","","8","","10",
"","12","","14","","16","","18","","20"))+
# Scalate thte colours, spectral means going from red to blue. LIMITS force the range to be btween 0 & 100
scale_fill_distiller(palette = "Spectral",direction =1, limits = c(0,100))+
# Labs
labs(x="Size (km)",y="Intensity (%)",title = title,subtitle = subtitle)+
# Sets the contour by Richness. BINWIDTH: the value between each contour line
geom_contour(aes(z=Richness), colour="black",size=0.5, lty="solid",stat="contour",
lineend="round",linejoin ="round",binwidth = 30)+
geom_point(aes(x=10.5, y=0.3), col="red", size=9, shape=21 , fill="black",stroke=2)+
# Determines the labels with a white STROKE below them
geom_text_contour(aes(z = Richness),stroke = 0.2, size= 10, rotate = F,check_overlap=T)+
# Theme stuff
theme_classic()+
theme(axis.line = element_line(size = 0.05, linetype = "solid"),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(0.4,1.5,0.4,1.5, "cm"),
axis.title = element_text(size = 18,face = "bold"),
axis.text = element_text(size = 18,face = "bold"),
axis.text.x = element_text(size = 17, color = "black"),
axis.text.y = element_text(size = 17, color = "black"),
legend.position = "none",
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_rect(colour = "black", size = 2.5, linetype = "solid"),
plot.background = element_rect(colour = "black", size = 1, linetype = "solid"),
legend.background = element_blank(),
plot.subtitle = element_text(size = 18,face = "bold", colour = "gray0"),
plot.title = element_text(size = 18, face = "bold"))
}
# Plot to combine all individual articles made with the function ARTICLE_FOR_GGPLOT
Combined_article_plot_T1 <- function(Post_Val_Matrix, file_name, iterations ){
plot_Post_fire_1 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[1]],title = iterations,subtitle = "250 m", max = 22,is.7 =1 )
plot_Post_fire_2 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[2]],iterations,"500 m", max = 22,is.7 =2 )
plot_Post_fire_3 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[3]],iterations,"1000 m", max = 22,is.7 =3 )
plot_Post_fire_4 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[4]],iterations,"1500 m", max = 22,is.7 =4 )
plot_Post_fire_5 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[5]],iterations,"2000 m", max = 22,is.7 =5 )
plot_Post_fire_6 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[6]],iterations,"2500 m", max = 22,is.7 =6 )
plot_Post_fire_7 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[7]],iterations,"3000 m", max = 22,is.7 =7 )
plot_Post_fire_8 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[8]],iterations,"Percolation distance (3842 m)", max = 22,is.7 =8 )
plot_Post_fire_9 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[9]],iterations,"5000 m", max = 24,is.7 =9 )
####Els multiplots PER FUNCTIONAL TRAITS AFTER###
library(gtable)
library(grid)
library(gridExtra)
# Get the gtables
gA <- ggplotGrob(plot_Post_fire_1)
gB <- ggplotGrob(plot_Post_fire_2)
gC <- ggplotGrob(plot_Post_fire_3)
gD <- ggplotGrob(plot_Post_fire_4)
gE <- ggplotGrob(plot_Post_fire_5)
gF <- ggplotGrob(plot_Post_fire_6)
gG <- ggplotGrob(plot_Post_fire_7)
gH <- ggplotGrob(plot_Post_fire_8)
gI <- ggplotGrob(plot_Post_fire_9)
# Arrange the two charts
# The legend boxes are centered
grid.newpage()
png(filename = paste("Figures/",file_name,".png", sep=""),width=14000,height=12000,units="px",res=800)
grid.arrange(gA,gB,gC,gD,gE,gF,gG,gH,gI, ncol = 3, nrow=3)
dev.off()
}
# Individual plots for each alpha
ARTICLE_FOR_GGPLOT_T1 <- function(Post_Val_Matrix, title, subtitle, max, is.7){
# Packages needed
require(ggplot2)
require(devtools)
require(metR) # IF not installed: install_github("eliocamp/metR")
df <- as.data.frame((Post_Val_Matrix)) # Make the output a data.frame
out <- list() # Generate and out in list format
out.bo <- list() # Generate and out in list format
for(i in 1:length(df)){ # Loop for each column of the data.frame (that corresponds to Wild. Size)
out.temp <- df[1:20,i] # Select all rows in each column and make them a data.frame
out[[i]] <- out.temp # Put all the rows in data.frame format into the out list
}
for (e in 1:20) { # For every 20 times
ee<- data.frame(out[[e]],rep(e,times=20),seq(from=0.05, to=1, by=0.05)) # create a new data.frame with the Richness/area/intensity
colnames(ee) <- c("Richness","area","intensity") # Change column names
out.bo[[e]] <- ee
}
final <- do.call(rbind,out.bo) # Joints the several lists objects created in one big data.frame
if(is.7==7)#;min(final[,1])>22) # Condition that if the minimum richness is GREATER than 90 will follow the below path
plot <-ggplot(final,aes(x=area, y=intensity))+
# Raster with all the data, hjust and vjust hide the bakground and INTERPOLATE= T dissolve the rasters
geom_raster(aes(x = area,y=intensity,fill=Richness),hjust=1,vjust=1,interpolate = T)+
# Scale y axis and set the levels
scale_y_continuous(limits = c(0.05,1),expand = c(0,0.005),
breaks = seq(from=0.05, to=1, by=0.05),
labels =c("0","10","","20","","30","","40","","50",
"","60","","70","","80","","90","","100"))+
# Scale x axis and set the levels--> WARNING: The maximum distance is 21km!! IS A LIE!
scale_x_continuous(limits = c(1,20),expand = c(0,0.1),
breaks = seq(from=1, to=20, by=1),
labels =c("0","2","","4","","6","","8","","10",
"","12","","14","","16","","18","","20"))+
# Scalate thte colours, spectral means going from red to blue LIMITS force the range to be btween 0 & 100
scale_fill_distiller(palette = "Spectral",direction =1, limits = c(0,max))+
# Labs
labs(x="Size (km)",y="Intensity (%)",title = title,subtitle = subtitle)+
geom_contour(aes(z=Richness), colour="black",size=0.5, lty="solid",stat="contour",
lineend="round",linejoin ="round",binwidth = 2)+
geom_point(aes(x=10.5, y=0.3), col="red", size=9, shape=21 , fill="black",stroke=2)+
# Theme stuff
theme_classic()+
theme(axis.line = element_line(size = 0.05, linetype = "solid"),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(0.4,1.5,0.4,1.5, "cm"),
axis.title = element_text(size = 18,face = "bold"),
axis.text = element_text(size = 18,face = "bold"),
axis.text.x = element_text(size = 17, color = "black"),
axis.text.y = element_text(size = 17, color = "black"),
legend.position = "none",
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_rect(colour = "black", size = 2.5, linetype = "solid"),
plot.background = element_rect(colour = "black", size = 1, linetype = "solid"),
legend.background = element_blank(),
plot.subtitle = element_text(size = 18,face = "bold", colour = "gray0"),
plot.title = element_text(size = 16, face = "bold"))
else plot <-ggplot(final,aes(x=area, y=intensity))+ # Condition that if the minimum richness is SMALLER than 90 will follow
# Raster with all the data, hjust and vjust hide the bakground and INTERPOLATE= T dissolve the rasters
geom_raster(aes(x = area,y=intensity,fill=Richness),hjust=1,vjust=1,interpolate = T)+
# Scale y axis and set the levels
scale_y_continuous(limits = c(0.05,1),expand = c(0,0.005),
breaks = seq(from=0.05, to=1, by=0.05),
labels =c("0","10","","20","","30","","40","","50",
"","60","","70","","80","","90","","100"))+
# Scale x axis and set the levels--> WARNING: The maximum distance is 21km!! IS A LIE!
scale_x_continuous(limits = c(1,20),expand = c(0,0.1),
breaks = seq(from=1, to=20, by=1),
labels =c("0","2","","4","","6","","8","","10",
"","12","","14","","16","","18","","20"))+
# Scalate thte colours, spectral means going from red to blue. LIMITS force the range to be btween 0 & 100
scale_fill_distiller(palette = "Spectral",direction =1, limits = c(0,max))+
# Labs
labs(x="Size (km)",y="Intensity (%)",title = title,subtitle = subtitle)+
# Sets the contour by Richness. BINWIDTH: the value between each contour line
geom_contour(aes(z=Richness), colour="black",size=0.5, lty="solid",stat="contour",
lineend="round",linejoin ="round",binwidth = 2)+
geom_point(aes(x=10.5, y=0.3), col="red", size=9, shape=21 , fill="black",stroke=2)+
# Determines the labels with a white STROKE below them
geom_text_contour(aes(z = Richness),stroke = 0.2, size= 10, rotate = F,check_overlap=T)+
# Theme stuff
theme_classic()+
theme(axis.line = element_line(size = 0.05, linetype = "solid"),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(0.4,1.5,0.4,1.5, "cm"),
axis.title = element_text(size = 18,face = "bold"),
axis.text = element_text(size = 18,face = "bold"),
axis.text.x = element_text(size = 17, color = "black"),
axis.text.y = element_text(size = 17, color = "black"),
legend.position = "none",
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_rect(colour = "black", size = 2.5, linetype = "solid"),
plot.background = element_rect(colour = "black", size = 1, linetype = "solid"),
legend.background = element_blank(),
plot.subtitle = element_text(size = 18,face = "bold", colour = "gray0"),
plot.title = element_text(size = 18, face = "bold"))
}
# Plot to combine all individual articles made with the function ARTICLE_FOR_GGPLOT
Combined_article_plot_T100 <- function(Post_Val_Matrix, file_name, iterations ){
plot_Post_fire_1 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[1]],title = iterations,subtitle = "250 m", max = 22,is.7 =1 )
plot_Post_fire_2 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[2]],iterations,"500 m", max = 22,is.7 =2 )
plot_Post_fire_3 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[3]],iterations,"1000 m", max = 22,is.7 =3 )
plot_Post_fire_4 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[4]],iterations,"1500 m", max = 22,is.7 =4 )
plot_Post_fire_5 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[5]],iterations,"2000 m", max = 22,is.7 =5 )
plot_Post_fire_6 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[6]],iterations,"2500 m", max = 22,is.7 =6 )
plot_Post_fire_7 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[7]],iterations,"3000 m", max = 22,is.7 =7 )
plot_Post_fire_8 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[8]],iterations,"Percolation distance (3842 m)", max = 22,is.7 =8 )
plot_Post_fire_9 <- ARTICLE_FOR_GGPLOT(Post_Val_Matrix[[1]][[9]],iterations,"5000 m", max = 24,is.7 =9 )
####Els multiplots PER FUNCTIONAL TRAITS AFTER###
library(gtable)
library(grid)
library(gridExtra)
# Get the gtables
gA <- ggplotGrob(plot_Post_fire_1)
gB <- ggplotGrob(plot_Post_fire_2)
gC <- ggplotGrob(plot_Post_fire_3)
gD <- ggplotGrob(plot_Post_fire_4)
gE <- ggplotGrob(plot_Post_fire_5)
gF <- ggplotGrob(plot_Post_fire_6)
gG <- ggplotGrob(plot_Post_fire_7)
gH <- ggplotGrob(plot_Post_fire_8)
gI <- ggplotGrob(plot_Post_fire_9)
# Arrange the two charts
# The legend boxes are centered
grid.newpage()
png(filename = paste("Figures/",file_name,".png", sep=""),width=14000,height=12000,units="px",res=800)
grid.arrange(gA,gB,gC,gD,gE,gF,gG,gH,gI, ncol = 3, nrow=3)
dev.off()
}
# Individual plots for each alpha
ARTICLE_FOR_GGPLOT_T100 <- function(Post_Val_Matrix, title, subtitle, max, is.7){
# Packages needed
require(ggplot2)
require(devtools)
require(metR) # IF not installed: install_github("eliocamp/metR")
df <- as.data.frame((Post_Val_Matrix)) # Make the output a data.frame
out <- list() # Generate and out in list format
out.bo <- list() # Generate and out in list format
for(i in 1:length(df)){ # Loop for each column of the data.frame (that corresponds to Wild. Size)
out.temp <- df[1:20,i] # Select all rows in each column and make them a data.frame
out[[i]] <- out.temp # Put all the rows in data.frame format into the out list
}
for (e in 1:20) { # For every 20 times
ee<- data.frame(out[[e]],rep(e,times=20),seq(from=0.05, to=1, by=0.05)) # create a new data.frame with the Richness/area/intensity
colnames(ee) <- c("Richness","area","intensity") # Change column names
out.bo[[e]] <- ee
}
final <- do.call(rbind,out.bo) # Joints the several lists objects created in one big data.frame
if(is.7==7)#;min(final[,1])>22) # Condition that if the minimum richness is GREATER than 90 will follow the below path
plot <-ggplot(final,aes(x=area, y=intensity))+
# Raster with all the data, hjust and vjust hide the bakground and INTERPOLATE= T dissolve the rasters
geom_raster(aes(x = area,y=intensity,fill=Richness),hjust=1,vjust=1,interpolate = T)+
# Scale y axis and set the levels
scale_y_continuous(limits = c(0.05,1),expand = c(0,0.005),
breaks = seq(from=0.05, to=1, by=0.05),
labels =c("0","10","","20","","30","","40","","50",
"","60","","70","","80","","90","","100"))+
# Scale x axis and set the levels--> WARNING: The maximum distance is 21km!! IS A LIE!
scale_x_continuous(limits = c(1,20),expand = c(0,0.1),
breaks = seq(from=1, to=20, by=1),
labels =c("0","2","","4","","6","","8","","10",
"","12","","14","","16","","18","","20"))+
# Scalate thte colours, spectral means going from red to blue LIMITS force the range to be btween 0 & 100
scale_fill_distiller(palette = "Spectral",direction =1, limits = c(0,max))+
# Labs
labs(x="Size (km)",y="Intensity (%)",title = title,subtitle = subtitle)+
geom_contour(aes(z=Richness), colour="black",size=0.5, lty="solid",stat="contour",
lineend="round",linejoin ="round",binwidth = 2)+
geom_point(aes(x=10.5, y=0.3), col="red", size=9, shape=21 , fill="black",stroke=2)+
# Theme stuff
theme_classic()+
theme(axis.line = element_line(size = 0.05, linetype = "solid"),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(0.4,1.5,0.4,1.5, "cm"),
axis.title = element_text(size = 18,face = "bold"),
axis.text = element_text(size = 18,face = "bold"),
axis.text.x = element_text(size = 17, color = "black"),
axis.text.y = element_text(size = 17, color = "black"),
legend.position = "none",
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_rect(colour = "black", size = 2.5, linetype = "solid"),
plot.background = element_rect(colour = "black", size = 1, linetype = "solid"),
legend.background = element_blank(),
plot.subtitle = element_text(size = 18,face = "bold", colour = "gray0"),
plot.title = element_text(size = 16, face = "bold"))
else plot <-ggplot(final,aes(x=area, y=intensity))+ # Condition that if the minimum richness is SMALLER than 90 will follow
# Raster with all the data, hjust and vjust hide the bakground and INTERPOLATE= T dissolve the rasters
geom_raster(aes(x = area,y=intensity,fill=Richness),hjust=1,vjust=1,interpolate = T)+
# Scale y axis and set the levels
scale_y_continuous(limits = c(0.05,1),expand = c(0,0.005),
breaks = seq(from=0.05, to=1, by=0.05),
labels =c("0","10","","20","","30","","40","","50",
"","60","","70","","80","","90","","100"))+
# Scale x axis and set the levels--> WARNING: The maximum distance is 21km!! IS A LIE!
scale_x_continuous(limits = c(1,20),expand = c(0,0.1),
breaks = seq(from=1, to=20, by=1),
labels =c("0","2","","4","","6","","8","","10",
"","12","","14","","16","","18","","20"))+
# Scalate thte colours, spectral means going from red to blue. LIMITS force the range to be btween 0 & 100
scale_fill_distiller(palette = "Spectral",direction =1, limits = c(0,max))+
# Labs
labs(x="Size (km)",y="Intensity (%)",title = title,subtitle = subtitle)+
# Sets the contour by Richness. BINWIDTH: the value between each contour line
geom_contour(aes(z=Richness), colour="black",size=0.5, lty="solid",stat="contour",
lineend="round",linejoin ="round",binwidth = 2)+
geom_point(aes(x=10.5, y=0.3), col="red", size=9, shape=21 , fill="black",stroke=2)+
# Determines the labels with a white STROKE below them
geom_text_contour(aes(z = Richness),stroke = 0.2, size= 10, rotate = F,check_overlap=T)+
# Theme stuff
theme_classic()+
theme(axis.line = element_line(size = 0.05, linetype = "solid"),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(0.4,1.5,0.4,1.5, "cm"),
axis.title = element_text(size = 18,face = "bold"),
axis.text = element_text(size = 18,face = "bold"),
axis.text.x = element_text(size = 17, color = "black"),
axis.text.y = element_text(size = 17, color = "black"),
legend.position = "none",
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_rect(colour = "black", size = 2.5, linetype = "solid"),
plot.background = element_rect(colour = "black", size = 1, linetype = "solid"),
legend.background = element_blank(),
plot.subtitle = element_text(size = 18,face = "bold", colour = "gray0"),
plot.title = element_text(size = 18, face = "bold"))
}
# Plot to combine all individual articles made with the function ARTICLE_FOR_GGPLOT
Combined_article_plot_iter <- function(Post_Val_Matrix, file_name, iterations ){
plot_Post_fire_1 <- ARTICLE_FOR_GGPLOT_iter(Post_Val_Matrix[[2]][[1]],iterations,"250 m")
plot_Post_fire_2 <- ARTICLE_FOR_GGPLOT_iter(Post_Val_Matrix[[2]][[2]],iterations,"500 m")
plot_Post_fire_3 <- ARTICLE_FOR_GGPLOT_iter(Post_Val_Matrix[[2]][[3]],iterations,"1000 m")
plot_Post_fire_4 <- ARTICLE_FOR_GGPLOT_iter(Post_Val_Matrix[[2]][[4]],iterations,"1500 m")
plot_Post_fire_5 <- ARTICLE_FOR_GGPLOT_iter(Post_Val_Matrix[[2]][[5]],iterations,"2000 m")
plot_Post_fire_6 <- ARTICLE_FOR_GGPLOT_iter(Post_Val_Matrix[[2]][[6]],iterations,"2500 m")
plot_Post_fire_7 <- ARTICLE_FOR_GGPLOT_iter(Post_Val_Matrix[[2]][[7]],iterations,"3000 m")
plot_Post_fire_8 <- ARTICLE_FOR_GGPLOT_iter(Post_Val_Matrix[[2]][[8]],iterations,"Percolation distance (3842 m)")
plot_Post_fire_9 <- ARTICLE_FOR_GGPLOT_iter(Post_Val_Matrix[[2]][[9]],iterations,"5000 m")
####Els multiplots PER FUNCTIONAL TRAITS AFTER###
library(gtable)
library(grid)
library(gridExtra)
# Get the gtables
gA <- ggplotGrob(plot_Post_fire_1)
gB <- ggplotGrob(plot_Post_fire_2)
gC <- ggplotGrob(plot_Post_fire_3)
gD <- ggplotGrob(plot_Post_fire_4)
gE <- ggplotGrob(plot_Post_fire_5)
gF <- ggplotGrob(plot_Post_fire_6)
gG <- ggplotGrob(plot_Post_fire_7)
gH <- ggplotGrob(plot_Post_fire_8)
gI <- ggplotGrob(plot_Post_fire_9)
# Arrange the two charts
# The legend boxes are centered
grid.newpage()
png(filename = paste("Figures/",file_name,".png", sep=""),width=14000,height=12000,units="px",res=800)
grid.arrange(gA,gB,gC,gD,gE,gF,gG,gH,gI, ncol = 3, nrow=3)
dev.off()
}
# Individual plots for each alpha
ARTICLE_FOR_GGPLOT_iter <- function(Post_Val_Matrix, title, subtitle){
# Packages needed
require(ggplot2)
require(devtools)
require(metR) # IF not installed: install_github("eliocamp/metR")
df <- as.data.frame((Post_Val_Matrix)) # Make the output a data.frame
out <- list() # Generate and out in list format
out.bo <- list() # Generate and out in list format
for(i in 1:length(df)){ # Loop for each column of the data.frame (that corresponds to Wild. Size)
out.temp <- df[1:20,i] # Select all rows in each column and make them a data.frame
out[[i]] <- out.temp # Put all the rows in data.frame format into the out list
}
for (e in 1:20) { # For every 20 times
ee<- data.frame(out[[e]],rep(e,times=20),seq(from=0.05, to=1, by=0.05)) # create a new data.frame with the Richness/area/intensity
colnames(ee) <- c("Richness","area","intensity") # Change column names
out.bo[[e]] <- ee
}
final <- do.call(rbind,out.bo) # Joints the several lists objects created in one big data.frame
if(mean(final[,1])<5) # Condition that if the minimum richness is GREATER than 90 will follow the below path
plot <-ggplot(final,aes(x=area, y=intensity))+
# Raster with all the data, hjust and vjust hide the bakground and INTERPOLATE= T dissolve the rasters
geom_raster(aes(x = area,y=intensity,fill=Richness),hjust=1,vjust=1,interpolate = T)+
# Scale y axis and set the levels
scale_y_continuous(limits = c(0.05,1),expand = c(0,0.005),
breaks = seq(from=0.05, to=1, by=0.05),
labels =c("0","10","","20","","30","","40","","50",
"","60","","70","","80","","90","","100"))+
# Scale x axis and set the levels--> WARNING: The maximum distance is 21km!! IS A LIE!
scale_x_continuous(limits = c(1,20),expand = c(0,0.1),
breaks = seq(from=1, to=20, by=1),
labels =c("0","2","","4","","6","","8","","10",
"","12","","14","","16","","18","","20"))+
# Scalate thte colours, spectral means going from red to blue LIMITS force the range to be btween 0 & 100
scale_fill_distiller(palette = "PuOr",direction =-1, limits = c(0,100))+
# Labs
labs(x="Size (km)",y="Intensity (%)",title = title,subtitle = subtitle)+
geom_contour(aes(z=Richness), colour="black",size=0.5, lty="solid",stat="contour",
lineend="round",linejoin ="round",binwidth = 10)+
geom_point(aes(x=10.5, y=0.3), col="red", size=9, shape=21 , fill="black",stroke=2)+
# Theme stuff
theme_classic()+
theme(axis.line = element_line(size = 0.05, linetype = "solid"),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(0.4,1.5,0.4,1.5, "cm"),
axis.title = element_text(size = 18,face = "bold"),
axis.text = element_text(size = 18,face = "bold"),
axis.text.x = element_text(size = 17, color = "black"),
axis.text.y = element_text(size = 17, color = "black"),
legend.position = "none",
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_rect(colour = "black", size = 2.5, linetype = "solid"),
plot.background = element_rect(colour = "black", size = 1, linetype = "solid"),
legend.background = element_blank(),
plot.subtitle = element_text(size = 18,face = "bold", colour = "gray0"),
plot.title = element_text(size = 16, face = "bold"))
else plot <-ggplot(final,aes(x=area, y=intensity))+ # Condition that if the minimum richness is SMALLER than 90 will follow
# Raster with all the data, hjust and vjust hide the bakground and INTERPOLATE= T dissolve the rasters
geom_raster(aes(x = area,y=intensity,fill=Richness),hjust=1,vjust=1,interpolate = T)+
# Scale y axis and set the levels
scale_y_continuous(limits = c(0.05,1),expand = c(0,0.005),
breaks = seq(from=0.05, to=1, by=0.05),
labels =c("0","10","","20","","30","","40","","50",
"","60","","70","","80","","90","","100"))+
# Scale x axis and set the levels--> WARNING: The maximum distance is 21km!! IS A LIE!
scale_x_continuous(limits = c(1,20),expand = c(0,0.1),
breaks = seq(from=1, to=20, by=1),
labels =c("0","2","","4","","6","","8","","10",
"","12","","14","","16","","18","","20"))+
# Scalate thte colours, spectral means going from red to blue. LIMITS force the range to be btween 0 & 100
scale_fill_distiller(palette = "PuOr",direction =-1, limits = c(0,100))+
# Labs
labs(x="Size (km)",y="Intensity (%)",title = title,subtitle = subtitle)+
# Sets the contour by Richness. BINWIDTH: the value between each contour line
geom_contour(aes(z=Richness), colour="black",size=0.5, lty="solid",stat="contour",
lineend="round",linejoin ="round",binwidth = 10)+
geom_point(aes(x=10.5, y=0.3), col="red", size=9, shape=21 , fill="black",stroke=2)+
# Determines the labels with a white STROKE below them
geom_text_contour(aes(z = Richness),stroke = 0.2, size= 10, rotate = F,check_overlap=T)+
# Theme stuff
theme_classic()+
theme(axis.line = element_line(size = 0.05, linetype = "solid"),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(0.4,1.5,0.4,1.5, "cm"),
axis.title = element_text(size = 18,face = "bold"),
axis.text = element_text(size = 18,face = "bold"),
axis.text.x = element_text(size = 17, color = "black"),
axis.text.y = element_text(size = 17, color = "black"),
legend.position = "none",
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_rect(colour = "black", size = 2.5, linetype = "solid"),
plot.background = element_rect(colour = "black", size = 1, linetype = "solid"),
legend.background = element_blank(),
plot.subtitle = element_text(size = 18,face = "bold", colour = "gray0"),
plot.title = element_text(size = 18, face = "bold"))
}
# Plot to combine all individual articles made with the function ARTICLE_FOR_GGPLOT
Combined_article_plot_sd <- function(Post_Val_Matrix, file_name, iterations ){
plot_Post_fire_1 <- ARTICLE_FOR_GGPLOT_sd(Post_Val_Matrix[[3]][[1]],iterations,"250 m")
plot_Post_fire_2 <- ARTICLE_FOR_GGPLOT_sd(Post_Val_Matrix[[3]][[2]],iterations,"500 m")
plot_Post_fire_3 <- ARTICLE_FOR_GGPLOT_sd(Post_Val_Matrix[[3]][[3]],iterations,"1000 m")
plot_Post_fire_4 <- ARTICLE_FOR_GGPLOT_sd(Post_Val_Matrix[[3]][[4]],iterations,"1500 m")
plot_Post_fire_5 <- ARTICLE_FOR_GGPLOT_sd(Post_Val_Matrix[[3]][[5]],iterations,"2000 m")
plot_Post_fire_6 <- ARTICLE_FOR_GGPLOT_sd(Post_Val_Matrix[[3]][[6]],iterations,"2500 m")
plot_Post_fire_7 <- ARTICLE_FOR_GGPLOT_sd(Post_Val_Matrix[[3]][[7]],iterations,"3000 m")
plot_Post_fire_8 <- ARTICLE_FOR_GGPLOT_sd(Post_Val_Matrix[[3]][[8]],iterations,"Percolation distance (3842 m)")
plot_Post_fire_9 <- ARTICLE_FOR_GGPLOT_sd(Post_Val_Matrix[[3]][[9]],iterations,"5000 m")
####Els multiplots PER FUNCTIONAL TRAITS AFTER###
library(gtable)
library(grid)
library(gridExtra)
# Get the gtables
gA <- ggplotGrob(plot_Post_fire_1)
gB <- ggplotGrob(plot_Post_fire_2)
gC <- ggplotGrob(plot_Post_fire_3)
gD <- ggplotGrob(plot_Post_fire_4)
gE <- ggplotGrob(plot_Post_fire_5)
gF <- ggplotGrob(plot_Post_fire_6)
gG <- ggplotGrob(plot_Post_fire_7)
gH <- ggplotGrob(plot_Post_fire_8)
gI <- ggplotGrob(plot_Post_fire_9)
# Arrange the two charts
# The legend boxes are centered
grid.newpage()
png(filename = paste("Figures/",file_name,".png", sep=""),width=14000,height=12000,units="px",res=800)
grid.arrange(gA,gB,gC,gD,gE,gF,gG,gH,gI, ncol = 3, nrow=3)
dev.off()
}
# Individual plots for each alpha
ARTICLE_FOR_GGPLOT_sd <- function(Post_Val_Matrix, title, subtitle){
# Packages needed
require(ggplot2)
require(devtools)
require(metR) # IF not installed: install_github("eliocamp/metR")
df <- as.data.frame((Post_Val_Matrix)) # Make the output a data.frame
out <- list() # Generate and out in list format
out.bo <- list() # Generate and out in list format
for(i in 1:length(df)){ # Loop for each column of the data.frame (that corresponds to Wild. Size)
out.temp <- df[1:20,i] # Select all rows in each column and make them a data.frame
out[[i]] <- out.temp # Put all the rows in data.frame format into the out list
}
for (e in 1:20) { # For every 20 times
ee<- data.frame(out[[e]],rep(e,times=20),seq(from=0.05, to=1, by=0.05)) # create a new data.frame with the Richness/area/intensity
colnames(ee) <- c("Richness","area","intensity") # Change column names
out.bo[[e]] <- ee
}
final <- do.call(rbind,out.bo) # Joints the several lists objects created in one big data.frame
final[which(is.na(final)),1] <- 0
#return(final)
if(min(final[,1])>90) # Condition that if the minimum richness is GREATER than 90 will follow the below path
plot <-ggplot(final,aes(x=area, y=intensity))+
# Raster with all the data, hjust and vjust hide the bakground and INTERPOLATE= T dissolve the rasters
geom_raster(aes(x = area,y=intensity,fill=Richness),hjust=1,vjust=1,interpolate = T)+
# Scale y axis and set the levels
scale_y_continuous(limits = c(0.05,1),expand = c(0,0.005),
breaks = seq(from=0.05, to=1, by=0.05),
labels =c("0","10","","20","","30","","40","","50",
"","60","","70","","80","","90","","100"))+
# Scale x axis and set the levels--> WARNING: The maximum distance is 21km!! IS A LIE!
scale_x_continuous(limits = c(1,20),expand = c(0,0.1),
breaks = seq(from=1, to=20, by=1),
labels =c("0","2","","4","","6","","8","","10",
"","12","","14","","16","","18","","20"))+
# Scalate thte colours, spectral means going from red to blue LIMITS force the range to be btween 0 & 100
scale_fill_distiller(palette = "Spectral",direction =1, limits = c(0,100))+
# Labs
labs(x="Size (km)",y="Intensity (%)",title = title,subtitle = subtitle)+
# Theme stuff
theme_classic()+
theme(axis.line = element_line(size = 0.05, linetype = "solid"),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(0.4,1.5,0.4,1.5, "cm"),
axis.title = element_text(size = 18,face = "bold"),
axis.text = element_text(size = 18,face = "bold"),
axis.text.x = element_text(size = 17, color = "black"),
axis.text.y = element_text(size = 17, color = "black"),
legend.position = "none",
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_rect(colour = "black", size = 2.5, linetype = "solid"),
plot.background = element_rect(colour = "black", size = 1, linetype = "solid"),
legend.background = element_blank(),
plot.subtitle = element_text(size = 18,face = "bold", colour = "gray0"),
plot.title = element_text(size = 16, face = "bold"))
else plot <-ggplot(final,aes(x=area, y=intensity))+ # Condition that if the minimum richness is SMALLER than 90 will follow
# Raster with all the data, hjust and vjust hide the bakground and INTERPOLATE= T dissolve the rasters
geom_raster(aes(x = area,y=intensity,fill=Richness),hjust=1,vjust=1,interpolate = T)+
# Scale y axis and set the levels
scale_y_continuous(limits = c(0.05,1),expand = c(0,0.005),
breaks = seq(from=0.05, to=1, by=0.05),
labels =c("0","10","","20","","30","","40","","50",
"","60","","70","","80","","90","","100"))+
# Scale x axis and set the levels--> WARNING: The maximum distance is 21km!! IS A LIE!
scale_x_continuous(limits = c(1,20),expand = c(0,0.1),
breaks = seq(from=1, to=20, by=1),
labels =c("0","2","","4","","6","","8","","10",
"","12","","14","","16","","18","","20"))+
# Scalate thte colours, spectral means going from red to blue. LIMITS force the range to be btween 0 & 100
scale_fill_distiller(palette = "BrBG",direction =-1, limits = c(0,20))+
# Labs
labs(x="Size (km)",y="Intensity (%)",title = title, subtitle = subtitle)+
# Sets the contour by Richness. BINWIDTH: the value between each contour line
geom_contour(aes(z=Richness), colour="black",size=0.5, lty="solid",stat="contour",
lineend="round",linejoin ="round",binwidth = 1)+
# Determines the labels with a white STROKE below them
geom_text_contour(aes(z = Richness),stroke = 0.2, size= 15, rotate = F,check_overlap=T)+
# Theme stuff
theme_classic()+
theme(axis.line = element_line(size = 0.05, linetype = "solid"),
axis.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(0.4,1.5,0.4,1.5, "cm"),
axis.title = element_text(size = 18,face = "bold"),
axis.text = element_text(size = 18,face = "bold"),
axis.text.x = element_text(size = 17, color = "black"),
axis.text.y = element_text(size = 17, color = "black"),
legend.position = "none",
legend.text = element_blank(),
legend.title = element_blank(),
panel.background = element_rect(colour = "black", size = 2.5, linetype = "solid"),
plot.background = element_rect(colour = "black", size = 1, linetype = "solid"),
legend.background = element_blank(),
plot.subtitle = element_text(size = 18,face = "bold", colour = "gray0"),
plot.title = element_text(size = 18, face = "bold"))
}
#Alpha 0.1
png(filename = "Figures/Globalplot_01.png",width=14000,height=12000,units="px",res=1000)
GLOBAL_ARTICLE_FOR_GGPLOT(Burn_rec_ENTRADA_0.1,"Entire metacommunity T1","Shared = 0.1")
dev.off()
#Alpha 0.3
png(filename = "Figures/Globalplot_03.png",width=14000,height=12000,units="px",res=1000)
GLOBAL_ARTICLE_FOR_GGPLOT(Burn_rec_ENTRADA_0.3,"Entire metacommunity T1","Shared = 0.3")
dev.off()
#Alpha 0.5
png(filename = "Figures/Globalplot_05.png",width=14000,height=12000,units="px",res=1000)
GLOBAL_ARTICLE_FOR_GGPLOT(Burn_rec_ENTRADA_0.5,"Entire metacommunity T1","Shared = 0.5")
dev.off()
#Alpha 0.7
png(filename = "Figures/Globalplot_07.png",width=14000,height=12000,units="px",res=1000)
GLOBAL_ARTICLE_FOR_GGPLOT(Burn_rec_ENTRADA_0.7,"Entire metacommunity T1","Shared = 0.7")
dev.off()
#Alpha 0.9
png(filename = "Figures/Globalplot_09.png",width=14000,height=12000,units="px",res=1000)
GLOBAL_ARTICLE_FOR_GGPLOT(Burn_rec_ENTRADA_0.9,"Entire metacommunity T1","Shared = 0.9")
dev.off()
#Alpha 0.1
png(filename = "Figures/Globalplot_01_T100.png",width=14000,height=12000,units="px",res=1000)
GLOBAL_ARTICLE_FOR_GGPLOT(Burn_0.1_T100,"Entire metacommunity T100","Shared = 0.1")
dev.off()
#Alpha 0.3
png(filename = "Figures/Globalplot_03_T100.png",width=14000,height=12000,units="px",res=1000)
GLOBAL_ARTICLE_FOR_GGPLOT(Burn_0.3_T100,"Entire metacommunity T100","Shared = 0.3")
dev.off()
#Alpha 0.5
png(filename = "Figures/Globalplot_05_T100.png",width=14000,height=12000,units="px",res=1000)
GLOBAL_ARTICLE_FOR_GGPLOT(Burn_0.5_T100,"Entire metacommunity T100","Shared = 0.5")
dev.off()
#Alpha 0.7
png(filename = "Figures/Globalplot_07_T100.png",width=14000,height=12000,units="px",res=1000)
GLOBAL_ARTICLE_FOR_GGPLOT(Burn_0.7_T100,"Entire metacommunity T100","Shared = 0.7")
dev.off()
#Alpha 0.9
png(filename = "Figures/Globalplot_09_T100.png",width=14000,height=12000,units="px",res=1000)
GLOBAL_ARTICLE_FOR_GGPLOT(Burn_0.9_T100,"Entire metacommunity T100","Shared = 0.9")
dev.off()
Alpha 0.5 T1
Alpha 0.5 T100